The invention relates to a method of decoding coded video signals which result from series coding macroblocks of pictures consisting of two interlaced fields, each macroblock comprising luminance blocks and chrominance blocks, and have been transmitted and/or stored in the form of digital signals which regroup the signals defining parameters of each macroblock and the useful signals associated with each pixel of each macroblock and correspond to sequential pictures of type I, P or B, respectively, dependent on whether said pictures are coded without reference to another picture of the sequence or are composed of macroblocks, the majority of which is predicted by means of unidirectional motion compensation based on an I or P picture, or of macroblocks, the majority of which is interpolated by means of bidirectional motion compensation based on I and/or P previous and subsequent pictures, said method comprising, in series, a step of decoding said coded video signals, a step of storing signals thus decoded and a step of displaying said signals at the field frequency.
The invention also relates to a decoding system for performing the method according to the invention and to a video reception equipment including such a decoding system. This invention is used in the field of digital television, both in current definition and in high definition, and notably where the television signals are compatible with the MPEG standard whose characteristic features will be described hereinafter.
In the last few years the International Standardization Organisation ISO has developed different algorithms for compressing digital data, and notably the MPEG standard (named after the group of experts who worked out this standard: Moving Picture Experts Group). This algorithm is based on two basic techniques: a transform of the signals to be compressed, with which the spatial redundancy within one picture can be reduced, and a compensation of motion between pictures, with which the temporal redundancy between these pictures can be reduced.
Motion compensation is a technique combining pictures which have already been coded with data which are representative of motions within successive pictures. As the pictures are subdivided into blocks, the coder searches data in a preceding picture, which data represent the best possible approximation of those data during coding, and then expresses the spatial shift between these data with the aid of a vector which is representative of this shift, i.e. of the motion between this preceding picture and the current picture. The block of data thus selected is used as a prediction of the block of current data. The coding is based on the residual prediction error computed by means of the difference between this previous selected block and the current block. Upon decoding, the inverse process is used to restore the initial pictures. In the MPEG standard, the motion compensation is effected per macroblock consisting of 16.times.16 pixels, more precisely of four luminance blocks of 8.times.8 pixels completed by two chrominance blocks of also 8.times.8 pixels.
Three types of pictures are defined: the pictures of the type I, referred to as "intra", which are coded without reference to any other previous picture (and thus provide random access to the sequence of coded pictures), the pictures of the type P, predicted by motion compensation based on a previous picture of the type I or of the type P, and the pictures of the type B, which are predicted (or interpolated) by means of bidirectional motion compensation (i.e. based on a previous picture and a subsequent picture, either one being of the type I or P). To permit this interpolation or bidirectional prediction, the pictures are transmitted in an order which is different from that in which they are subsequently displayed, so that said previous and subsequent pictures should both be available in order that the interpolation can be performed.
U.S. Pat. No. 5,294,974 shows (in FIG. 1) the diagrammatic structure of a coder which is suitable for supplying a stream of digital data whose syntax is in conformity with the MPEG standard. In this coder, the luminance and chrominance signals obtained after shifting the original pictures are converted into blocks (after this format conversion, each picture of the sequence is henceforth represented by a sequence of blocks of 8.times.8 pixels, each pixel itself being represented by a digital word of 8 bits, while the blocks are regrouped in macroblocks as described hereinbefore). A motion estimation between each current macroblock and a predicted macroblock by searching the similar macroblock within a preceding reference picture subsequently provides the possibility of defining the coding mode per macroblock. Each macroblock of I pictures is coded in accordance with the "intra" mode. For the pictures of type P, the coding mode is either the unidirectional prediction mode, or the "intra" mode for certain macroblocks. For the pictures of the type B, the coding mode is the bidirectional prediction mode, but also the unidirectional prediction mode (beforehand or afterwards) or even the "intra" mode for certain macroblocks. For modes other than the "intra" mode, the predicted macroblock is subtracted from the current macroblock and only the residual macroblock is coded.
The "intra" macroblocks or the residual macroblocks (dependent on the mode) are then after transform of the spatial domain into the frequency domain (by way of, for example a discrete cosine transform of blocks, denoted DCT) and quantization, coded in a variable-length coding circuit. The signals thus coded are stored for constituting the stream of coded data and dequantized and then transformed by way of the inverse orthogonal transform of the preceding one for constricting the predicted macroblock with which the current macroblock is compared in the modes other than the "intra" mode.
The syntax of the stream of coded data as well as the method of decoding this stream of data in conformity with said standard (but not the coding method which is only compatible with this syntax and this decoding method) are described in various documents edited by the International Standardization Organisation, and notably in its periodically edited recommendations. Moreover a decoder which is suitable for decoding a stream of MPEG data is shown in the document ISCAS 94, London, May 1994, chapter 3.22, "VLSI implementation of MPEG decoders".
The general structure of the decode described in the latter document is described with reference to FIG. 1. The coded signals, which have been transmitted and/or stored, are received by a decoding sub-assembly 10 whose output signals are the pixels to be displayed. This decoding sub-assembly 10 is connected to a storage sub-assembly 20 via a bus 30. The decoding sub-assembly 10 comprises a decoding device 11 and a display device 12. The decoded signals supplied by the decoding device 11 are stored in the storage sub-assembly in the form of macroblocks of 16.times.16 pixels having the CCIR format 601 4:2:0. The macroblocks thus stored are subsequently applied to the display device 12 which ensures their conversion so as to adapt them to the output format required, viz. the interlaced mode 4:2:2 (an interlaced picture is composed of two odd and even fields temporally shifted by half a picture and spatially by one line, the odd field regrouping the odd lines and being displayed first, and the even field regrouping the even lines).
FIG. 2 illustrates the operation of the decoding device, characteristic of the MPEG standard. The coded signals constituting the stream of MPEG data are first stored in a buffer memory 110. All the sequence and group headers of the pictures are read in this memory. Subsequently, the start of each coded picture and the type of this picture are identified and the successive decoding of each macroblock is effected in a variable-length decoding circuit 120. Each block (or macro block) of decoded data is then submitted to inverse quantization (per macroblock) and inverse transform from the frequency domain to the spatial domain (here, in inverse quantization and inverse discrete cosine transform circuits 130 and 140). A motion compensation circuit 150 receives the motion vectors and the signals indicating the type of each macroblock (intra or residual, dependent on the coding mode), and then supplies the predicted macroblocks which are added to the decoded signals in an adder 160 (for the modes other than the "intra" mode) whose output supplies the reconstituted signals to be displayed for reconstructing the pictures. If these pictures are of the type I or P, they are also stored in so far as they are reference pictures which are indispensable for reconstituting the pictures of type B. Before display, the natural order of these pictures I, P, B is restored.
In the 625 lines/50 Hz transmission systems, the majority of MPEG decoders use an external memory of approximately 16 Mbits (1 megabit=2.sup.20 bits) whose capacity for picture sizes of 720.times.576 pixels is divided as follows:
(a) input buffer memory 110: approximately 2.5 Mbits (in accordance with the MPEG specifications a capacity of 1.85 Mbit would be sufficient for this memory, but in practice a capacity supplement of approximately 600 kbits proves to be necessary);
(b) memories for storing Previous and subsequent reference pictures (as explained, these two pictures are necessary for the bidirectional interpolation of the macroblocks of the type-B pictures, and the required memory capacity is 720.times.576.times.8.times.1.5=5 Mbits per picture, i.e. 10 Mbits);
(c) memory for each type-B picture: approximately 3.8 Mbits.
The minimum capacity thus reached is 16.3 Mbits, which for an external memory size of 16.8 Mbits (2.sup.24 =16.8.10.sup.6) leaves only 500 kbits available for other uses.
This restriction is accompanied by that relating to the bandwidth for the memory access, which is concisely referred to as rate or memory bandwidth in the following description and which is representative of the rate of communication between the decoding sub-assembly 10 and the storage sub-assembly 20. The value of the useful memory bandwidth is not constant from one macroblock to the other: the macroblocks coded in accordance with the "intra" mode employ lower values, whereas those predicted by means of bidirectional interpolation with motion vectors determined to half a pixel require higher values. This rate of communication between the sub-assemblies 10 and 20 may vary in a range between approximately 400 to 700 Mbits/second. As has also been explained, the external memory used for the storage sub-assembly 20 is a memory of 16 Mbits (here a synchronous dynamic random access memory SDRAM), operating at 54 MHz, at which the memory bandwidth is 864 Mbits/second which is just above the range stated hereinbefore.
Thus it appears that the memory capacity and the memory bandwidth are substantially completely used when the method of decoding the video signals here processed is being performed. It is therefore practically impossible to carry out supplementary operations while this method is being performed. Whereas in the near future the increasing integration of functions would permit such operations as, for example teletext, graphic processing, screen display, etc., these limitations inhibit their use in practice.